package office;

import com.wordnik.swagger.annotations.ApiModelProperty;
import json.NationCodeInfoDTO;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * @Author: youdao.hww
 * @Date: 8/15/24
 * @Desc:
 */
@Data
public class BillDetailDTO {


    @ApiModelProperty("账单明细Id")
    private Long id;
    @ApiModelProperty("账单Id")
    private Long billId;
    @ApiModelProperty("账单明细id")
    private Long billingDetailId;
    @ApiModelProperty("原费用明细id")
    private Long sourceBillingDetailId;
    @ApiModelProperty("诊疗类型")
    private String healthcareType;
    @ApiModelProperty("诊疗记录Id")
    private Long healthcareRecordId;
    @ApiModelProperty("收费项目类型-FH0173")
    private String chargeItemType;
    @ApiModelProperty("收费项目id")
    private Long chargeItemId;
    @ApiModelProperty("收费项目编码")
    private String chargeItemCode;
    @ApiModelProperty("收费项目名称")
    private String chargeItemName;
    private NationCodeInfoDTO nationCodeInfo;
    @ApiModelProperty("基础科目编码")
    private String subjectCode;
    @ApiModelProperty("基础科目名称")
    private String subjectName;
    @ApiModelProperty("单价")
    private BigDecimal price;
    @ApiModelProperty("数量")
    private BigDecimal quantity;
    @ApiModelProperty("单位")
    private String unit;
    @ApiModelProperty("规格")
    private String specification;
    @ApiModelProperty("收费比例")
    private BigDecimal chargeRatio;
    @ApiModelProperty("收费项目总额")
    private BigDecimal amount;
    @ApiModelProperty("计费时间")
    private LocalDateTime billingTime;
    @ApiModelProperty("发生时间")
    private LocalDateTime occurTime;
    @ApiModelProperty("开单人Id")
    private Long billingById;
    @ApiModelProperty("开单人姓名")
    private String billingByName;
    @ApiModelProperty("开单科室")
    private Long billingDeptId;
    @ApiModelProperty("开单科室名称")
    private String billingDeptName;
    @ApiModelProperty("记录人Id")
    private Long recordById;
    @ApiModelProperty("记录人姓名")
    private String recordByName;
    @ApiModelProperty("执行人ID")
    private Long executeBy;
    @ApiModelProperty("执行人名称")
    private String executeByName;
    @ApiModelProperty("执行科室")
    private Long executeDeptId;
    @ApiModelProperty("执行科室-名称")
    private String executeDeptName;
    @ApiModelProperty("记录科室id")
    private Long recordDeptId;
    @ApiModelProperty("记录科室名称")
    private String recordDeptName;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("机构id")
    private Long orgId;
    @ApiModelProperty("院区id")
    private Long campusId;
    @ApiModelProperty("账单明细计算状态")
    private Integer calcStatus;
    @ApiModelProperty("账单明细计算结果字符串")
    private String calcResultStr;
    @ApiModelProperty("医保等级")
    private String medicareItemGrade;
    @ApiModelProperty("医保等级名称")
    private String medicareItemGradeName;
    @ApiModelProperty("自付比例")
    private BigDecimal selfPaidRatio;
    @ApiModelProperty("自理金额")
    private BigDecimal selfArrangedAmount;
    @ApiModelProperty("自费金额")
    private BigDecimal selfExpensedAmount;
    @ApiModelProperty("自负金额")
    private BigDecimal selfPaidAmount;
    @ApiModelProperty("账单明细扩展")
    private Map<String, String> detailMapExt;
    @ApiModelProperty("订单id")
    private Long orderId;
    @ApiModelProperty("订单组id")
    private Long orderGroupId;
    @ApiModelProperty("退订单id列表")
    private List<Long> refundOrderIds;
    private Boolean forceSelfExpense;
    @ApiModelProperty("退订单组列表")
    private List<Long> refundOrderGroupIds;
    @ApiModelProperty("医保上传信息")
    private String uploadMedicareMessage;
    @ApiModelProperty("关联对象")
    private Integer orderBizType;
    @ApiModelProperty("费用来源")
    private Integer orderBizSource;
    @ApiModelProperty("医嘱id")
    private Long doctorOrderId;
    @ApiModelProperty("费用来源")
    private String feeSource;
    @ApiModelProperty("费用来源子分类")
    private String feeSubSource;
}
